export function uuid(len: number = 16, radix?: number): string {
	const chars: string[] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
	const uuid: string[] = [];
	let i: number;
	const radixS = radix || chars.length;

	if (len) {
		for (i = 0; i < len; i++) {
			uuid[i] = chars[0 | (Math.random() * radixS)];
		}
	} else {
		let r: number;
		uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
		uuid[14] = '4';
		for (i = 0; i < 36; i++) {
			if (!uuid[i]) {
				r = 0 | (Math.random() * 16);
				uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r];
			}
		}
	}

	return uuid.join('');
}